<?php
include_once '/../buscar_registro/Buscar_Usuario.php';
include_once '/../buscar_registro/Buscar_Pedido.php';
include_once '/../buscar_registro/Buscar_Lista_Empleados.php';
//include_once '/../logica/Pasar_a_coordenadas.php';

class Modificar_Pedido{

private $pedido;
private $usuario;
private $empleado;
private $empleados;
private $nueva_fecha_pedido;
private $nueva_hora_pedido;

//__________________INICIAR MODIFICACION________________________________

	public function __construct($id_busqueda, $tipo_de_dato){
		if($tipo_de_dato=="nro_pedido"){
			$this->pedido=new Buscar_pedido($id_busqueda, $tipo_de_dato);
		}else{
			$this->usuario=new Buscar_usuario($id_busqueda, $tipo_de_dato);
			$this->pedido=new Buscar_pedido($this->usuario->get_nro_usuario(), "nro_usuario");
		}
	}

	public function get_fecha_pedido(){
		return $this->pedido->get_fecha_pedido();
	}
	
	public function get_hora_pedido(){
		return $this->pedido->get_hora_pedido();
	}

	public function get_usuario(){
		return $this->usuario;
	}

	public function get_empleado(){
		return $this->empleado;
	}


//__________________COMENZAR MODIFICACION_______________________________
	
	public function set_cambios($nueva_fecha_pedido, $nueva_hora_pedido){
		$this->nueva_fecha_pedido=$nueva_fecha_pedido;
		$this->nueva_hora_pedido=$nueva_hora_pedido;
		$this->empleados=$this->buscar_nuevo_empleado();
	}
	
	public function get_lista_empleados(){
		return $this->empleados;
	}


//__________________CONFIRMAR MODIFICAR_________________________________

	public function confirmar($nuevo_empleado){
	    //mysqli_connect(host,username,password,dbname);
	    //$con=mysqli_connect("example.com","peter","abc123","my_db"); 
	    $conexion=Yii::app()->db;// 
	    // Check connection
	    if (mysqli_connect_errno()) {
	    	echo "Failed to connect to MySQL: " . mysqli_connect_error();
	    } else{
			mysqli_query($con,"UPDATE pedido SET nro_usuario='".$this->usuario->get_nro_usuario()."', nro_empleado='".$this->empleado->get_nro_empleado()."',
			fecha_pedido='".$this->fecha_pedido."',hora_pedido='".$this->hora_pedido."' WHERE nro_pedido=".$this->pedido->get_nro_pedido());
		}
		$this->notificar();
	  }


//________METODOS PRIVADOS__________ 

	private function buscar_nuevo_empleado(){
		//$empleados_disponibles=$this->buscar_RDA();
		$empleados_disponibles= $Buscar_Lista_Empleado($this->empleado->$especialidad, $this->usuario->$direccion_usuario);///correjir cordenadas en la clase
		return $empleados_disponibles;		
	}

	private function notificar(){
	
	}

//__________________________Revisar_______________
	private function buscar_RDA(){
		$coordenadas=new pasar_a_coordenada($this->usuario->get_direccion_usuario());
		
		//Conectar a la base de datos de empleados
		//buscar empleados cuya ubicacion actual sea:
			//$coordenadas<=ubicacion_actual<=$corrdenadas+RDA;
		//Guardar lista en empleados.
		//ordenar lista de mayor a menor.

		//Creo que ubicacion_actual deberia ser ubicacion_lat y ubicacion_long
		$consulta="SELECT * FROM proyecto.empleados WHERE ubicacion_actual=$nro_empleado';";
		$resultado=$conexion->createCommand($consulta);
		$files=$resultado->queryAll();
		foreach($files as $file) { //asi recorre la lista
			$nro_empleado=$file['nro_empleado'];
			$nombre_empleado=$file['nombre'];
			$apellido_empleado=$file['apellido'];
			$dni_empleado=$file['dni'];
			$especialidad=$file['especialidad'];
			$ubicacion_actual=$file['ubicacion_actual'];
			$empleado= new Usuario($nro_usuario, $nombre_usuario, $apellido_usuario, $dni_usuario, $direccion_usuario);
			array_push($this->empleados, $empleado);
		}
		
		


		//Si la lista es vacia o menor a 2:
		if (array_count_values($this->$empleados)<2) {
			$this->buscarBFS($coordenadas);
			//ver que haria aca, si lo guarda en una nueva variable, los agrega al final, calcula todo de nuevo, etc.	
//		} elseif ($t<"20") {
//		  echo "Have a good day!";
		} else {
			return $this->empleados;
		}		
		

	}

	private function buscarBFS($coordenadas){
		$resultado_BFS= new BFS($coordenadas);
		//Ver que hacer con resultado y empleados
	}
}
?> 


